// 扩展vue原有的功能：全局组件，自定义指令，挂载原型方法
// 插件
// 导出一个对象，有install函数，默认传入了app实例，app基础上扩展
// context(目录路径，是否加载子目录，加载文件的匹配(可写正则))
const importFn = require.context('./', false, /\.vue$/)

export default {
  install (app) {
    // app上进行扩展，app提供了component directive函数
    // 挂载在原型上，则 app.config.globalProperties
    // app.component(ShopSkeleton.name, ShopSkeleton)
    // app.component(ShopSwiper.name, ShopSwiper)
    // app.component(ShopMore.name, ShopMore)
    // app.component(ShopBread.name, ShopBread)
    // app.component(ShopBreadItem.name, ShopBreadItem)
    // importFn函数中有一个key()属性，存放需要导入的所有文件路径
    // 根据keys()获取所有文件路径
    importFn.keys().forEach(path => {
      // 每个vue组件都有export default
      const component = importFn(path).default
      // 批量注册组件
      app.component(component.name, component)
    })
  }
}